<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://xmlns.jcp.org/jsf/html"
      xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
      xmlns:f="http://xmlns.jcp.org/jsf/core"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/template.xhtml">
        <ui:define name="title">
            <h:outputText value="Repuestos"></h:outputText>
        </ui:define>
        <ui:define name="cuerpo">
            <p:growl id="message" showDetail="true" />

            <h:form id="form" >                                        
                <p:panel header="Administración de Repuestos" style="font-size: small">                                            
                    <p:growl id="validacionMensaje" showDetail="true" autoUpdate="true"/>
                    <table width="100%" border="0">                    
                        <p:commandButton process="@this" style="margin-top: 10px" 
                                         action="#{repuestoBean.cargarNuevo()}" value="Crear nuevo"
                                         icon="ui-icon-circle-plus"
                                         update="@form:dlDialog" oncomplete="PF('dlDialogVar').show()"/>
                    </table> 

                    <p:dataTable id="dtRepuestos" var="item" value="#{repuestoBean.repuestos}" widgetVar="tablaRepuesto"                                                                  
                                 emptyMessage="Sin Datos"
                                 style="margin-top: 10px; font-size: small"                                
                                 paginator="true" rows="10" rowKey="#{item.codRepuesto}">

                        <f:facet name="header">
                            <p:outputPanel>
                                <h:outputText value="Buscar por todos los criterios:" />
                                <p:inputText id="globalFilter" onkeyup="PF('tablaRepuesto').filter()" style="width:200px" placeholder="Ingrese la palabra clave"/>
                            </p:outputPanel>
                        </f:facet>                        

                        <p:column headerText="Nombre" filterBy="#{item.nombre}" >
                            <div align="center">
                                <h:outputText value="#{item.nombre}"/>
                            </div>
                        </p:column>    

                        <p:column headerText="Bodega" filterBy="#{item.bodega.nombre}" >
                            <div align="center">
                                <h:outputText value="#{item.bodega.nombre}"/>
                            </div>
                        </p:column>                                                                                                                                                                      
                        <p:column headerText="Herramientas" >                                                        
                            <div align="center">
                                <p:commandButton value="Modificar" action="#{repuestoBean.cargarModificar()}" update="@form:dlDialog"
                                                 process="@this" oncomplete="PF('dlDialogVar').show()">
                                    <f:setPropertyActionListener value="#{item}" target="#{repuestoBean.repuesto}" />
                                </p:commandButton>  | 

                                <p:commandButton value="Detalles" action="#{repuestoBean.cargarDetalle()}" update="@form:dlDialog" 
                                                 process="@this" oncomplete="PF('dlDialogVar').show()">
                                    <f:setPropertyActionListener value="#{item}" target="#{repuestoBean.repuesto}" />
                                </p:commandButton>  



                            </div>
                        </p:column>                                                            
                    </p:dataTable>

                    <p:dialog dynamic="true" id="dlDialog" resizable="false" header="#{repuestoBean.tituloDialogo}" appendTo="@(body)" 
                              widgetVar="dlDialogVar" modal="true" showEffect="fade" hideEffect="fade"
                              style="font-size: small">                      
                        <p:panel  id="dlRepuesto" style="text-align:left;">
                            <p:panelGrid columns="2" rendered="#{not empty repuestoBean.repuesto}" columnClasses="label,value">                                                                                        

                                <p:outputLabel  for="txtNombre" value="Nombre:" />
                                <p:inputText onkeyup="value = value.toUpperCase();" 
                                             style="width: 200px" id="txtNombre" value="#{repuestoBean.repuesto.nombre}" required="true" requiredMessage="El campo 'Nombre' es requerido" readonly="#{repuestoBean.soloLectura}" />                                

                                <p:outputLabel  for="cmbMarcaRepuesto" value="Marca: " />
                                <p:selectOneMenu filter="true" filterMatchMode="startsWith" disabled="#{repuestoBean.soloLectura}" 
                                                 id="cmbMarcaRepuesto" value="#{repuestoBean.repuesto.marcaRepuesto}" 
                                                 required="true" requiredMessage="El campo 'Marca' es requerido" style="width: 200px" 
                                                 styleClass="menu" panelStyleClass="panel">                                                                        
                                    <f:selectItem itemLabel="Seleccione..." itemValue="#{null}" noSelectionOption="true" />
                                    <f:selectItems value="#{marcaRepuestoBean.marcaRepuestos}" var="marcaRepuesto" 
                                                   itemLabel="#{marcaRepuesto.nombre}" itemValue="#{marcaRepuesto}"/>
                                    <f:converter converterId = "marcaRepuestoConverter"/>                                     
                                </p:selectOneMenu>                               

                                <p:outputLabel  for="txtNumeroSerie" value="N° de Serie:" />
                                <p:inputText onkeyup="value = value.toUpperCase();" 
                                             style="width: 200px" id="txtNumeroSerie" value="#{repuestoBean.repuesto.numeroSerie}" required="true" requiredMessage="El campo 'N° Serie' es requerido" readonly="#{repuestoBean.soloLectura}" />                                

                                <p:outputLabel  for="cmbUnidadMedida" value="Unidad de Medida:" />
                                <p:selectOneMenu filter="true" filterMatchMode="startsWith" disabled="#{repuestoBean.soloLectura}" 
                                                 id="cmbUnidadMedida" value="#{repuestoBean.repuesto.unidadMedida}" 
                                                 required="true" requiredMessage="El campo 'Unidad de Medida' es requerido" style="width: 200px" 
                                                 styleClass="menu" panelStyleClass="panel">                                                                        
                                    <f:selectItem itemLabel="Selecciones..." itemValue="#{null}" noSelectionOption="true" />
                                    <f:selectItems value="#{unidadMedidaBean.unidadMedidas}" var="unidadMedida" 
                                                   itemLabel="#{unidadMedida.nombre}" itemValue="#{unidadMedida}"/>
                                    <f:converter converterId = "unidadMedidaConverter"/>                                     
                                </p:selectOneMenu>                               

                                <p:outputLabel  for="txtDescripcion" value="N° de Serie:" />
                                <p:inputTextarea onkeyup="value = value.toUpperCase();" 
                                                 style="width: 200px" id="txtDescripcion" value="#{repuestoBean.repuesto.descripcion}" required="true" requiredMessage="El campo 'Descripcion' es requerido" readonly="#{repuestoBean.soloLectura}" />                                

                                <p:outputLabel  for="txtStock" value="Stock:" />
                                <p:spinner style="width: 200px" id="txtStock" min="0" max="100" value="#{repuestoBean.repuesto.stock}" required="true" requiredMessage="El campo 'Stock' es requerido" readonly="#{repuestoBean.soloLectura}" />                                

                                <p:outputLabel  for="txtCosto" value="Costo:" />
                                <p:spinner style="width: 200px" id="txtCosto" prefix="$" min="0" stepFactor="0.25" value="#{repuestoBean.repuesto.costo}" required="true" requiredMessage="El campo 'Costo' es requerido" readonly="#{repuestoBean.soloLectura}" />                                

                                
                                <p:outputLabel  for="cmbBodega" value="Bodega: " />
                                <p:selectOneMenu filter="true" filterMatchMode="startsWith" disabled="#{repuestoBean.soloLectura}" 
                                                 id="cmbBodega" value="#{repuestoBean.repuesto.bodega}" 
                                                 required="true" requiredMessage="El campo 'Bodega' es requerido" style="width: 200px" 
                                                 styleClass="menu" panelStyleClass="panel">                                                                        
                                    <f:selectItem itemLabel="Seleccione..." itemValue="#{null}" noSelectionOption="true" />
                                    <f:selectItems value="#{bodegaBean.bodegas}" var="bodega" 
                                                   itemLabel="#{bodega.nombre}" itemValue="#{bodega}"/>
                                    <f:converter converterId = "bodegaConverter"/>                                     
                                </p:selectOneMenu>  
                                
                                <p:outputLabel  for="cmbProveedor" value="Proveedor:" />
                                <p:selectOneMenu filter="true" filterMatchMode="startsWith" disabled="#{repuestoBean.soloLectura}" 
                                                 id="cmbProveedor" value="#{repuestoBean.proveedor}" 
                                                 required="true" requiredMessage="El campo 'Proveedor' es requerido" style="width: 200px" 
                                                 styleClass="menu" panelStyleClass="panel">                                                                        
                                    <f:selectItem itemLabel="Seleccione..." itemValue="#{null}" noSelectionOption="true" />
                                    <f:selectItems value="#{proveedorBean.proveedores}" var="pro" 
                                                   itemLabel="#{pro.nombre}" itemValue="#{pro}"/>
                                    <f:converter converterId = "proveedorConverter"/>                                     
                                </p:selectOneMenu>
                                
                                <p:outputLabel rendered="#{repuestoBean.soloLectura}" for="txtFechaCreacion" value="Fecha de Creación:" />
                                <p:inputText style="width: 200px" rendered="#{repuestoBean.soloLectura}" id="txtFechaCreacion"  value="#{repuestoBean.repuesto.fechaCreacion}" readonly="true" >
                                    <f:convertDateTime type="date" locale="es_EC" timeZone="America/Guayaquil"  
                                                       dateStyle="default" pattern="yyyy/dd/MM" /> 
                                </p:inputText>

                                <p:outputLabel rendered="#{repuestoBean.activarModificar || repuestoBean.soloLectura}" for="txtEstado" value="Estado:" />
                                <p:selectBooleanCheckbox style="text-align: center" rendered="#{repuestoBean.activarModificar || repuestoBean.soloLectura}" disabled="#{repuestoBean.soloLectura}" id="txtEstado" value="#{repuestoBean.repuesto.estado}"/>

                            </p:panelGrid>
                            <div align="right">
                                <p:outputLabel value = "* Campos Obligatorios"/>
                            </div>
                            <br/>
                            <div align="center">
                                <p:commandButton rendered="#{repuestoBean.activarNuevo}" 
                                                 update=":form:dtRepuestos,@form:dlDialog:dlRepuesto"
                                                 icon="ui-icon-disk"
                                                 action="#{repuestoBean.guardar()}" 
                                                 partialSubmit="true" process="@form:dlDialog"
                                                 value="Guardar">                                  
                                    <p:confirm header="Confirmación" message="Esta seguro de guardar este registro?" icon="ui-icon-alert" />
                                </p:commandButton>                                                                     
                            </div>
                            <div align="center">
                                <p:commandButton rendered="#{repuestoBean.activarModificar}" 
                                                 update=":form:dtRepuestos,@form:dlDialog:dlRepuesto"
                                                 icon="ui-icon-pencil"
                                                 action="#{repuestoBean.modificar()}"  
                                                 partialSubmit="true" process="@form:dlDialog"
                                                 value="Modificar">                                  
                                    <p:confirm header="Confirmación" message="Esta seguro de modificar este registro?" icon="ui-icon-alert" />
                                </p:commandButton>                                     
                            </div>                            
                        </p:panel>
                    </p:dialog>
                </p:panel>
                <p:confirmDialog style="font-size: small" global="true" showEffect="fade" hideEffect="explode">
                    <p:commandButton value="Si" type="button" styleClass="ui-confirmdialog-yes" icon="ui-icon-check" />
                    <p:commandButton value="No" type="button" styleClass="ui-confirmdialog-no" icon="ui-icon-close" />
                </p:confirmDialog>
            </h:form>
        </ui:define>
    </ui:composition>
</html>